<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Features of JBehave</title>
</head>

<body>

<h2>Features of JBehave</h2>

<p>JBehave is a framework for <a
    href="http://en.wikipedia.org/wiki/Behavior_driven_development">Behaviour-Driven
Development</a> (BDD). 

<p>Features of JBehave include:</p>

<ul>
	<li>Pure Java implementation, which plays well with Java-based
	enterprises or when interfacing to any environment that exposes
    a Java API.</li>
	<li>Users can specify and run text-based user stories, which
	allows "out-in" development.</li>
	<li>User stories can be written in JBehave syntax or Gherkin syntax.</li>
    <li>User stories can be specified as classpath resources
    or external URL-based resources.</li>
    <li>User stories can be executed concurrently, specifying 
    the number of concurrent threads.</li>
    <li>User stories can be documented via generic user-defined 
    meta information that allows easy story filtering and organisation
    into story maps.</li>
	<li>Annotation-based binding of textual steps to Java methods,
	with auto-conversion of string arguments to any parameter type
	(including generic types) via custom parameter converters.</li>
	<li>Annotation-based configuration and Steps class specifications</li>
	<li>Dependency Injection support allowing both configuration and
	Steps instances composed via your favourite container (Guice, Needle,
	PicoContainer, Spring, Weld).</li>
    <li>Groovy scripting supported for writing configuration and 
    Steps instances</li>  
	<li>Extensible story reporting: outputs stories executed in
	different human-readable file-based formats (HTML, TXT, XML). 
	Fully style-able view.</li>
    <li>Story cross reference report format in JSON and XML, consumable 
    by external applications.</li>
	<li>Auto-generation of pending steps so the build is not broken by
	a missing step, but has option to configure breaking build for pending
	steps.</li>
	<li>Pluggable step prioritising strategy.  Strategies bundled in core
	include:  by priority field and by Levenshtein Distance.</li>
	<li>Localisation of user stories, allowing them to be written in
	any language.</li>
	<li>IDE integration: stories can be run as JUnit tests or other
	annotation-based unit test frameworks, providing easy integration with
	your favourite IDE.</li>
	<li>Ant integration: allows stories to be run via Ant task</li>
	<li>Maven integration: allows stories to be run via Maven plugin
	at given build phase</li>
</ul>

<h2>Want to learn more?</h2>
<span class="followup">The <a href="getting-started.html">Getting
Started</a> page will get you up and running in no time.</span>


</body>
</html>